<?php

/*
 * Email para ser enviado con informacion de una cotizacion.
 */
class MailCotizacion extends Swift_Message
{
  /* Comentario que se agrega como encabezado del mensaje.
   */
  protected $comentario;

  /* objeto Cotizacion del que se origina el mensaje.  
   */
  protected $cotizacion;

  protected $nombreprod;

  /*
   * Nuevo email para el envio de una cotizacion.
   *
   * TODO: recordar recomendaciones de http://swiftmailer.org/wikidocs/v3/tips_spam
   *        donde mendionan el no enviar emails con solo HTML (envio multipart).
   *        En http://www.symfony-project.org/cookbook/1_1/en/email explican como 
   *        enviar multipart.
   *
   *@param $cotiz CotizacionForm formulario con informacion de cotizacion
   */
  public function __construct(Cotizacion $cotizacion, $nombrep = null)
  {
    parent::__construct();
    $this->cotizacion = $cotizacion;
    $this->nombreprod = ucfirst(strtolower($nombrep));
    $config = ProjectConfiguration::getApplicationConfiguration( 'ShoppingCartFront', 'all',false);
    $config->loadHelpers('Partial');
    $contenidoHtml = get_partial('carrito/cotizacion_email_html', array('cotizacion' => $cotizacion ));
    //$contenidoTxt = get_partial('carrito/cotizacion_email_txt', array('cotizacion' => $cotizacion ));
    $nombcompania = sfConfig::get('app_ecommerce_nombre_compania', null);
    $nombprod = sfConfig::get('app_ecommerce_' . $this->nombreprod, null);
    $this->setFrom(sfConfig::get('app_sf_guard_plugin_default_cotizacion_email', 'clopez@altarget.net' ))
         ->setSubject((null != $nombcompania ? ($nombcompania . ': '):'') .'Cotizacion ' . (null != $this->nombreprod ? 'de ' . $this->nombreprod : ' ' ));
    $this->setBody($contenidoHtml, 'text/html');
    //$this->attach(new TxtAdjunto($contenidoTxt, 'text/plain')); TODO: agregar dos ADJUNTOS, para enviar multipart
    
  }

  /*
   * Coloca un comentario para ser entregado junto a la
   * cotizacion.
   *
   *@param $coment string Comentario
   */
  public function setComentario($coment)
  {
    $this->comentario = $coment;
    return $this;
  }
} 
